// pages/cart/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 用户地址信息
    address:{},
    // 商品信息
    cart:[],
    allchecked:false,
    allmoney:0,
    allnum:0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },
  onShow:function(){
   this.setcart();
  },
  // 添加收货地址
  handleChooseAddress(){
    // 1.获取小程序对收货地址权限的状态，
    // 2.如果为true则直接调用小程序内置获取收货地址接口，否则调用小程序内置申请收货地址权限接口
    wx.getSetting({
      success: (res) => {
        if(res.authSetting["scope.address"] === true || res.authSetting["scope.address"]=== undefined){
          wx.chooseAddress({
            success: (res2) => {
              wx.setStorageSync('address', res2);
            }
          })
        }else{
          wx.openSetting({
            success: (res3) => {
            }
          })
        }
      },
    })
  },
  // 商品选中功能
  // 1.找到商品的goods_id
  // 2.去跟缓存中的商品信息比对，找到后对缓存内的商品进行修改
  // 3.还有页面data中的商品信息进行修改
  xuanzhong(e){
    // 获取商品的id
    const {index} = e.currentTarget.dataset;
    // 找到data中相对应的商品进行修改
    this.data.cart.forEach(v=>{
      if(v.goods_id == index){
        v.checked = !v.checked;
      }
    });
    // 将缓存中的数据全部更新
    wx.setStorageSync('cart', this.data.cart);
    this.setcart()
   
  },
  // 修改底部工具栏数据，以及缓存和data中的数据
  setcart(){
    let address = wx.getStorageSync('address');
    // 获取页面初始化里的缓存商品信息
    let cart = wx.getStorageSync('cart') || [];
    const allchecked  = cart.length>0?cart.every(v=>v.checked):false;
    let allnum=0;
    let allmoney=0;
    // 计算商品总数量和总价格
    cart.forEach(v=>{
      if(v.checked){
        allmoney += v.goods_price * v.num;
        allnum += v.num;
      }
    });
    this.setData({
      address,
      cart,
      allchecked,
      allmoney,
      allnum
    })
  },
  // 全选功能
  allxuan(){
    this.data.allchecked = !this.data.allchecked;
    this.data.cart.forEach(v=>{
      v.checked = this.data.allchecked;
    });
    wx.setStorageSync('cart', this.data.cart);
    this.setcart()
  },
  // 商品数量增减
  and(e){
    const add =  e.currentTarget.dataset.add;
    const id = e.currentTarget.dataset.sp;
    const cart = this.data.cart;
    const index = cart.findIndex(v=>v.goods_id == id);
    var self=this; 
    if(cart[index].num ===1&&add===-1){
      wx.showModal({
        title: '是否删除该商品',
        content: '',
        success (res) {
          if (res.confirm) {
            cart.splice(index,1)
            self.setData({
              cart
            })
            wx.setStorageSync('cart', cart);
            self.setcart();
            console.log('用户点击确定') 
          } else if (res.cancel) {
            cart[index].num=1;
            console.log('用户点击取消')
          }
        }
      })
    }else{
      cart[index].num+=add;
      this.setData({
        cart
      });
      wx.setStorageSync('cart', this.data.cart);
      this.setcart();
    };
  },
  // 支付功能
  zhifu(){
    const address = this.data.address;
    const cart = this.data.cart;
    console.log(address)
    if(!address){
      wx.showToast({
        title: '您还未选择收货地址',
        icon:'none'
      })
      return ;
    }else if(cart.length<=0){
      wx.showToast({
        title: '您还没有添加商品',
        icon:'none'
      })
      return ;
    }else{
      wx.redirectTo({
        url: '/pages/pay/index'
      })
    }
  }
})